import { userLogin, getInfo } from '@/api/user'
import { getToken, setToken } from '@/utils/auth'

export default {
  namespaced: true,
  state: {
    // token
    token: getToken(),
    // 用户信息(头像/姓名)
    getInfoState: {} // 这里有一个空对象，为了放置后面取数据报错
  },
  mutations: {
    // token
    userLoginMutations(state, payload) {
      state.token = payload
      // 把token存入本地存储中
      setToken(payload)
    },
    // 用户信息(头像/姓名)
    getInfoMutations(state, payload) {
      state.getInfoState = payload
      // console.log(payload)
    }
  },
  actions: {
    // 登录axios 拿到token
    async userLoginActions(context, payload) {
      const data = await userLogin(payload)
      console.log(data)
      // 把token通过mutations 存入state中
      context.commit('userLoginMutations', data)
    },
    // 用户信息(头像/姓名)
    async getInfoActions(context, payload) {
      const data = await getInfo()
      // console.log(data)
      context.commit('getInfoMutations', data)
    },
    // token 失效 退出登录的action
    logout(context) {
      context.commit('userLoginMutations') // 删除token
      context.commit('getInfoMutations', {}) // 设置用户信息为空对象
    }
  }
}

